home *** CD-ROM | disk | FTP | other *** search
- ùúùúÿó»Ïÿó»Ïÿó»Ïÿó»Ïÿó»Ïÿó»Ïÿó»Ïÿó»Ïÿó»Ï;------------------T--------T
- *******************************************************************************
- **
- ** Picture-preprocessor
- **
- ** output:
- ** a0=save start
- ** a1=save end
- **
- *******************************************************************************
-
- Begin: lea RawPicture(pc),a0
- lea DotPicture(pc),a1
- bsr PicPreprocess
- lea DotPicture(pc),a0
- lea CodePicture,a1
- lea CodePointers,a2
- bsr GenerateCode
- lea CodePointers,a0
- rts
-
- GenerateCode: move.w #208-1,d3
- move.l a1,a4
- .nextsojle move.l a1,a3
- sub.l a4,a3
- move.l a3,(a2)+
- moveq #0,d2 ;gammel farve
- .sojleloop moveq #0,d0
- move.b (a0)+,d0 ;pos
- cmp.b #$ff,d0
- bne.b .ok
- move.w #$4E75,(a1)+
- dbra d3,.nextsojle
- rts
- .ok move.w Instr1(pc),(a1)+
- add.w d0,d0
- move.w d0,(a1)+
- move.b (a0)+,d1 ;farve
-
- eor.b d1,d2
- btst #0,d2
- beq.b .plan0ok
- move.w Instr2(pc),(a1)+
- clr.w (a1)+
- .plan0ok btst #1,d2
- beq.b .plan1ok
- move.w Instr2(pc),(a1)+
- move.w #44,(a1)+
- .plan1ok
- move.b d1,d2
- bra.b .sojleloop
-
- Instr1: move.w 0(a0),d0 ;0=ypos
- Instr2: bchg d1,(a1,d0.w)
-
-
-
- PicWidth: EQU 26
-
- PicPreprocess: moveq #26-1,d3 ;bytesøjler
- .byteloop moveq #7,d2 ;bitnummer
- .bitloop move.w #208-1,d6
- moveq #0,d5 ;gammel farve
- moveq #(256-208)/2,d0
-
- .sojleloop moveq #0,d4 ;farve
- btst d2,(a0)
- beq.b .plan1ok
- bset #0,d4
- .plan1ok btst d2,Picwidth(a0)
- beq.b .plan2ok
- bset #1,d4
- .plan2ok
- cmp.b d4,d5
- beq.b .nextline
-
- move.b d4,d5
- move.b d0,(a1)+
- move.b d5,(a1)+
- .nextline lea PicWidth*2(a0),a0
- addq.w #1,d0
- dbra d6,.sojleloop
- tst.b d5
- beq.b .zero
- move.b d0,(a1)+
- clr.b (a1)+
- .zero st (a1)+
- lea -208*PicWidth*2(a0),a0
- dbra d2,.bitloop
- addq.w #1,a0
- dbra d3,.byteloop
- rts
-
-
-
-
-
- INCDIR "Work:Code/Sources/HTSAC/FractalCube/"
- RawPicture: INCIFF "Matilde.brush"
-
- DotPicture: blk.b 100000,0
-
- CodePointers: blk.l 208,0
- CodePicture: blk.b 100000,0
-
-
-